package com.tyut.musicdreamer.service.music.model.vo;

import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * 统一返回结果
 */
@Data
@Accessors(chain = true)
public class Result<T> implements Serializable {

    /**
     * 成功状态码
     */
    public static final String SUCCESS_CODE = "0";

    /**
     * 状态码
     */
    private String code;

    /**
     * 消息
     */
    private String message;

    /**
     * 数据
     */
    private T data;

    /**
     * 请求ID
     */
    private String requestId;

    /**
     * 创建成功结果
     */
    public static <T> Result<T> success(T data) {
        return new Result<T>()
                .setCode(SUCCESS_CODE)
                .setData(data);
    }

    /**
     * 创建失败结果
     */
    public static <T> Result<T> failure(String code, String message) {
        return new Result<T>()
                .setCode(code)
                .setMessage(message);
    }
} 